<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <link rel="stylesheet" href="../css/reset.css">
    <script src="../js/jquery-3.6.0.min.js"></script>
    <style>
        .title {
            line-height: 40px;
            height: 40px;
            text-indent: 10px;
        }

        .list li {
            text-indent: 10px;
            line-height: 40px;
            height: 40px;
            border: 1px solid #333;
        }

        .active {
            background-color: #6ff;
        }
    </style>
</head>

<body>
    <div id="wrap">
        <h3 class="title">jquery获取元素</h3>
        <ul class="list">
            <li class="first"><span class="demo">01</span></li>
            <li>02</li>
            <li class="mid">03</li>
            <li>04</li>
            <li>05</li>
            <li class="last">06</li>
        </ul>
        <input type="text" class="search">
    </div>
</body>

<script>
    // jquery中的遍历方法
    // 1. 回调函数的参数顺序 index,item
    // 2. this始终指向循环的当前元素

    // each 遍历
    // $(".list li").each(function (index, item) {
    //     console.log(index, item, this);
    //     $(this)
    // })

    // map  映射(根据回调函数的返回值 得到一个新的jquery对象)
    // var list = $(".list li").map(function (index, item) {
    //     console.log(index, item, this);
    //     return $(this).text();
    // }).get();
    // console.log(list);


    // filter()  筛选 => 从匹配的元素中, 筛选出满足条件的元素
    // 1. 接收一个回调函数 回调函数返回一个条件 筛选出满足条件的元素
    // var list = $(".list li").filter(function (index, item) {
    //     console.log(index, item, this);
    //     // return index % 2 == 0;
    //     // return $(this).hasClass("first"); // 包含class名 first
    //     return $(this).prop("className"); // 有class名
    // }).css({ background: "red" });


    // 2. 接收一个css选择器作为筛选条件
    // $(".list li").filter(".first").css({ background: "red" });
    // $(".list li").filter("[class]").css({ background: "red" });

    // 3. 接收原生DOM元素和DOM元素的集合
    // var first = document.querySelector(".first");
    // $(".list li").filter(first).css({ background: "red" });

    // 4. 接收jquery对象
    // $(".list li").filter($(".first")).css({ background: "red" });


    // not()  从匹配的元素(集合)中, 删除满足条件的元素  => 把满足条件的元素从集合中去掉, 得到不满足条件的元素   (filter取反)

    // 1. 接收一个回调函数 回调函数返回一个条件 把满足条件的元素从集合中去掉, 得到不满足条件的元素   (filter取反)
    // var list = $(".list li").not(function (index, item) {
    //     // console.log(index, item, this);
    //     // return index % 2 == 0;
    //     // return $(this).hasClass("first"); // 包含class名 first
    //     return $(this).prop("className"); // 有class名
    // }).css({ background: "red" });


    // 2. 接收一个css选择器作为筛选条件
    // $(".list li").not(".first").css({ background: "red" });
    // $(".list li").not("[class]").css({ background: "red" });

    // 3. 接收原生DOM元素和DOM元素的集合
    // var first = document.querySelector(".first");
    // $(".list li").not(first).css({ background: "red" });

    // 4. 接收jquery对象
    // $(".list li").not($(".first")).css({ background: "red" });


    // is()  判断集合中是否存在满足条件的元素  (只要有一个满足则返回true);
    // 多元素 => 有一个满足即可
    // 单元素 => 精确


    // 1. 接收一个回调函数 回调函数返回一个条件 有一个元素满足条件则返回true
    // var flag = $(".list li").is(function (index) { // 类似 some
    //     // return $(this).hasClass("second"); // 是否存在class名为second
    //     return $(this).text().includes("0");
    // });
    // console.log(flag);

    // 2. 接收一个css选择器作为筛选条件
    console.log($(".list li").is(".first"));
    console.log($(".first").parent().is(".list"));

    // 3. 接收原生DOM元素和DOM元素的集合
    var first = document.querySelector(".first");
    console.log($(".list li").eq(0).is(first));

    // 4. 接收jquery对象
    console.log($(".list li").eq(0).is($(".first")));




























</script>

</html>